查看原文
其他

深度学习端侧推理框架Bolt v1.0发布,领跑端侧AI性能与应用

HUAWEI Noah NeuralTalk 2022-11-28

Bolt是基于华为诺亚方舟实验室研究成果,开源社区孵化的高性能深度学习推理加速库。Github链接:https://github.com/huawei-noah/bolt,欢迎大家前往下载使用v1.0版本,用户交流QQ群:833345709


https://github.com/huawei-noah/bolt/blob/master/docs/BENCHMARK.md


  • 高性能:Bolt推理时间实测低于现有的开源加速库15%+

  • 多平台:Bolt支持ARM CPU,ARM GPU,X86 CPU等多种硬件

  • 多应用:Bolt能够加速常用计算机视觉(检测,识别,分割等)和自然语言处理应用意图识别,翻译,语音识别,文本到语音等)。

  • 全精度:Bolt支持float32, float16, int8, 1-bit等多种计算精度,满足不同应用场景的存储空间和计算速度要求;针对float16,int8实际应用过程中的精度下降问题,Bolt拥有全栈的解决方案

  • 高适配:Bolt支持Tensorflow,Pytorch,Caffe,MindSpore等多种训练框架存储的PB, TFLite, ONNX, CaffeModel模型文件直接转换

1. 高性能:推理延迟低于现有的开源加速库15%+

ARMv8.2 float16

Bolt是第一个全面支持ARMv8.2 float16推理的端侧开源加速库。在华为nova5手机麒麟810 ARM CPU 1.8GHz小核心上,将Bolt和阿里的MNN,腾讯的NCNN做性能测试,发现Bolt float16推理延迟低于现有加速库15%+。Bolt float16现在已经被应用到解决许多视觉和自然语言处理场景中,运算级准确率调优基本可以保证业务的准确率。

图1 ARMv8.2 CPU float16性能对比:bolt/ncnn/mnn

ARM fp32

Bolt 跟业内的开源加速库一样,在低端ARM CPU上支持float32推理加速。Bolt 2019年开源之后没有更新float32性能。在麒麟810 ARM CPU做了一些性能测试,最新发布的阿里MNN 1.1.0版本和腾讯NCNN,TNN已经逐渐接近Bolt的推理延迟,Bolt依然处于业内前沿地位

图2 ARM CPU fp32性能对比:bolt/ncnn/mnn/tflite/tnn

ARM int8

Bolt支持全流程int8量化的加速库,相对于float16性能可以提升40%+。在麒麟810 CPU上,将Bolt和开源加速库腾讯的NCNN做了一些性能测试。发现Bolt的全流程量化性能是腾讯NCNN的2~3倍

全流程是相对于其它框架的频繁量化和反量化,导致整个网络推理性能相对于fp32提升不大。尽可能全int8全网络,减少量化反量化次数,最终相对fp16有40%提升。

图3 ARM CPU int8性能对比:bolt/ncnn

ARM 1bit

Bolt支持1-bit网络推理加速1-bit算子加速是float16的4倍。因为其余几家目前不支持1-bit加速,在麒麟810 CPU上,将Bolt和开源加速库京东DABNN做了性能测试。发现Bolt 1-bit推理性能远超京东DABNN。

图4 ARM CPU 1bit性能对比:bolt/dabnn/dabnn-stem

ARM GPU float16

Bolt支持ARM GPU float16推理加速,在宽浅网络性能远超ARM CPU float16。在麒麟810 MALI G52 GPU上,将Bolt和阿里的MNN,腾讯的NCNN和TNN,Google的tflite做性能测试,发现Bolt GPU float16推理延迟在大多模型上处于领先

图5 ARM GPU fp16性能对比:bolt/ncnn/mnn/tflite/tnn

X86 CPU

Bolt 支持X86 CPU加速,在Intel Xeon E5-2667 v4 3.2GHz CPU上,将Bolt和Intel OpenVINO做了一些性能测试,float32在视觉网络上可以与Intel OpenVINO势均力敌,在个别网络上有优势。在自然语言处理网络上,Bolt推理延迟远低于Intel OpenVINO

图6 X86 CPU性能对比:bolt/OpenVINO

2. 模型转换工具全面易用:支持Tensorflow,Pytorch,Caffe等框架

Bolt支持Tensorflow,Pytorch,Caffe,MindSpore等多种训练框架。Bolt提供了全自动化模型转换工具X2bolt,能够将PB, TFLite, ONNX, CaffeModel模型文件转换成自定义的bolt文件。Bolt同时提供半自动化工具tensorflow2caffe帮助用户转换自然语言处理模型到自定义的Caffe模型,解决TensorFlow模型到Bolt的复杂适配问题。

图7 Bolt模型转换工具支持框架的模型转换流程

3. 应用支持广泛:视觉性能强,自然语言处理性能更强

Bolt除了视觉网络加速,在自然语言处理网络加速上也有许多积累工作

  1. 前一段时间文章《Bolt 6ms加速TinyBert》引起关注,首次将Bert超大网络应用到了手机上。如今Bolt再一次刷新了这个记录,在麒麟990 ARM CPU的2.7GHz大核心上1.3ms完成了TinyBert加速

  2. Bolt加速机器翻译,在麒麟990 ARM CPU上实现6ms翻译出一个词语,端侧翻译实时使用;

  3. Bolt加速语音识别ASR,在麒麟990 ARM CPU上识别实时率0.2,处于业界前沿

  4. Bolt加速文本到语音转换TTS,在麒麟990 ARM CPU上生成实时率0.2,处于业界前沿。

4. 我们的目标

Bolt团队致力于打造高性能的深度学习算法+研发系统,让更多人了解和使用并行计算是我们不懈的奋斗目标。

下面的内容转载自风辰

Bolt 是一个深度学习推理库,我们希望它未来能够成为移动端最快的深度学习推理库,能够在库的大小、使用内存大小上面都获得比较好的效果;最早在经历过3个人团队半年的开发后,我们觉得它能够解决一部分问题,且相比业界目前最快的深度学习推理库具备一定的优势,因此准备在诺亚内部推广其使用,诺亚员工分布于多个国家,最好的协同开发方式是通过github。

Bolt 在许多深度学习推理方面相比业界的其它库向前更进了一步,我们首次支持了 ARM V8.2   fp16和int8运算,我们开发的矩阵乘法在许多情况下达到了硬件峰值的 90%+,我们开发的卷积运算性能在许多情况下达到了硬件峰值的 80%左右,这让我们库的性能远快于其它的推理库;我们首次同时支持了 CNN、LSTM 和 Transformer, Bert 模型在 Bolt 上能够非常高效的运行;我们的 int8 实现在一些情况下能够做到比 fp16 要快,这在业界也是第一次;我们的 BNN 实现目前已知也是非常快的。

HUAWEI Noah's Ark Lab

最后,欢迎大家加入到领跑深度学习性能的队伍中,反馈体验效果,在社区积极讨论。未来我们会继续利用更领先的技术,在计算机视觉、自然语言处理及更多的领域发力,将更多的研究结果带到社区。获取简历投递邮箱,请在后台回复「诺亚」、「华为诺亚」


1. 《探索Bert端侧手机落地:6ms的TinyBert,结合硬件的极速推理》

2. 《华为MindSpore开源AKG(Auto Kernel Generator)项目

3. Bolt BENCHMARK:https://github.com/huawei-noah/bolt/blob/master/docs/BENCHMARK.md

4. https://github.com/huawei-noah/bolt


查看历史文章,请点击【阅读原文】

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存